/*
 * SegPedidoForm.java
 *
 * Created on 8 de junio de 2008, 20:53
 */
package View;

import javax.swing.UIManager;
import com.birosoft.liquid.*;

import Controller.SegPedidoController;
import Model.Congreso; 
import Model.Pedido;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JList;
import java.util.ArrayList;
/**
 *
 * @author  Gigin
 */
public class SegPedidoForm extends javax.swing.JFrame {
    // Controller del Form
    private SegPedidoController mSegPedidoController;
    
    //Para manejar pantallas
    private PpalForm ppal;    
    private String modo;
    
    private Congreso mCongreso;
    private boolean ventana;
    private Vector vPend = new Vector();
    private Vector vList = new Vector(); 
    private Vector vEntr = new Vector(); 
    private TablaModelo tablaDetalles;
    private String[] encabezadoDetPedido = {"Numero Pedido","Cliente","DVDs","Seña","Total", "Deuda","Congreso","Moneda"};
    private String[] encabezadoDetEnvio = {"Numero Pedido","Cliente","DVDs","Seña","Total","Deuda","Fecha envío","Congreso","Moneda"};
    private Pedido mPedido;
    /** Creates new form SegPedidoForm */
    public SegPedidoForm(boolean vent, String modo, Congreso cong) {
       // Si ventana = 0 --> Seguimiento de envios
       //  Si ventana = 1 --> Seguimiento de pedidos
        this.ventana = vent;
        
        //Crea la tabla de detalles 
        if (ventana)
            tablaDetalles = new TablaModelo(encabezadoDetPedido,0);
        else
            tablaDetalles = new TablaModelo(encabezadoDetEnvio,0);
        
        this.setModo(modo);
        this.setCongreso(cong);
        
        //Se crea el controller de la pantalla
        mSegPedidoController = new SegPedidoController();
        
        // Se carga el Look and Feel
        try {
            UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");   
        } catch (Exception e) { }
          LiquidLookAndFeel.setStipples(false);
          LiquidLookAndFeel.setShowTableGrids(true);
   
        //Se crean los componentes del Form 
        initComponents();
        this.setSize(this.getMaximumSize());
        
        //Se deshabilitan los paneles 
         panelFiltroEstado(false);
         panelListadosEstado(false);
         panelDetallesEstado(false);
                 
         if (this.getModo().compareTo("Oficina") == 0){
              // Crea el arrayList de Congresos
                mSegPedidoController.cargarCongresos(this.ventana);
             // Carga el combo de Congresos
                 cargarComboCongresos();
         }else 
             if(this.getModo().compareTo("Congreso") == 0){
                 mSegPedidoController.setCongreso(this.getCongreso());
                 jComboCongresos.addItem(mSegPedidoController.getCongreso());
                 jComboCongresos.setEnabled(false);
            }
         jButtonVolver.setEnabled(true);
        
     }

  
    public void panelTituloEstado(boolean estado){
        if (this.getModo().compareTo("Oficina") == 0){
            jComboCongresos.setEnabled(estado);
        }
    }
    
    /** Habilita o deshabilita los componentes del panel de Filtros */
    public void panelFiltroEstado(boolean estado){
            jTextNombre.setEnabled(estado);
            jCheckNombre.setEnabled(estado);
            jTextDocumento.setEnabled(estado);
            jCheckDocumento.setEnabled(estado);
            jTextNroPedido.setEnabled(estado);
            jCheckNroPedido.setEnabled(estado);
            jButtonFiltrar.setEnabled(estado);
            jButtonMostrarTodos.setEnabled(estado);
    }
   
    public void estadoBotonesFiltro(){
        panelFiltroEstado(false);
        jCheckNombre.setEnabled(true);
        jCheckDocumento.setEnabled(true);
        jCheckNroPedido.setEnabled(true);
    }
    
    /** Habilita o deshabilita los componentes del panel de Listados */
    public void panelListadosEstado(boolean estado){
            jListListos.setEnabled(estado);
            jListPendientes.setEnabled(estado);
            jListEntregados.setEnabled(estado);
            jButtonPendListo.setEnabled(estado);
            jButtonListoEntr.setEnabled(estado);
            jButtonImprimir.setEnabled(estado);
            jButtonEliminar.setEnabled(estado);
    }
    
     /** Habilita o deshabilita los componentes del panel de Listados */
    public void panelDetallesEstado(boolean estado){
            jTableDetalles.setEnabled(estado);
            jButtonVolver.setEnabled(estado);
    }
    
    /** Carga el combo de Congresos */
    public void cargarComboCongresos(){
       for (int i=0 ; i < mSegPedidoController.getCongresos().size()-1 ; i++)
             jComboCongresos.addItem(mSegPedidoController.getCongresos().get(i));  
       
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jDialog1 = new javax.swing.JDialog();
        jPanel1 = new javax.swing.JPanel();
        jPanelTitulo = new javax.swing.JPanel();
        jLabelTitulo = new javax.swing.JLabel();
        jComboCongresos = new javax.swing.JComboBox();
        jLabel23 = new javax.swing.JLabel();
        jLabelFechaInicio = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jLabelFechaFin = new javax.swing.JLabel();
        jLabel25 = new javax.swing.JLabel();
        jLabelCiudad = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jPanelFiltro = new javax.swing.JPanel();
        jTextNombre = new javax.swing.JTextField();
        jTextDocumento = new javax.swing.JTextField();
        jTextNroPedido = new javax.swing.JTextField();
        jButtonFiltrar = new javax.swing.JButton();
        jCheckNombre = new javax.swing.JCheckBox();
        jCheckDocumento = new javax.swing.JCheckBox();
        jCheckNroPedido = new javax.swing.JCheckBox();
        jButtonMostrarTodos = new javax.swing.JButton();
        jPanelListados = new javax.swing.JPanel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jButtonPendListo = new javax.swing.JButton();
        jButtonListoEntr = new javax.swing.JButton();
        jButtonImprimir = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        jListListos = new javax.swing.JList();
        jScrollPane1 = new javax.swing.JScrollPane();
        jListPendientes = new javax.swing.JList();
        jScrollPane3 = new javax.swing.JScrollPane();
        jListEntregados = new javax.swing.JList();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTableDetalles = new javax.swing.JTable();
        jButtonVolver = new javax.swing.JButton();
        jButtonEliminar = new javax.swing.JButton();

        javax.swing.GroupLayout jDialog1Layout = new javax.swing.GroupLayout(jDialog1.getContentPane());
        jDialog1.getContentPane().setLayout(jDialog1Layout);
        jDialog1Layout.setHorizontalGroup(
            jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jDialog1Layout.setVerticalGroup(
            jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabelTitulo.setFont(new java.awt.Font("Monotype Corsiva", 1, 24));
        jLabelTitulo.setForeground(new java.awt.Color(94, 148, 189));
        jLabelTitulo.setText("Seleccionar un congreso para comenzar");

        jComboCongresos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboCongresosActionPerformed(evt);
            }
        });

        jLabel23.setFont(new java.awt.Font("Verdana", 1, 10));
        jLabel23.setForeground(new java.awt.Color(94, 148, 189));
        jLabel23.setText("Fecha Inicio:");

        jLabelFechaInicio.setFont(new java.awt.Font("Verdana", 0, 10));

        jLabel24.setFont(new java.awt.Font("Verdana", 1, 10));
        jLabel24.setForeground(new java.awt.Color(94, 148, 189));
        jLabel24.setText("Fecha fin:");

        jLabelFechaFin.setFont(new java.awt.Font("Verdana", 0, 10));

        jLabel25.setFont(new java.awt.Font("Verdana", 1, 10));
        jLabel25.setForeground(new java.awt.Color(94, 148, 189));
        jLabel25.setText("Ciudad:");

        jLabelCiudad.setFont(new java.awt.Font("Verdana", 0, 10));

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/logo_GTV4.gif"))); // NOI18N

        javax.swing.GroupLayout jPanelTituloLayout = new javax.swing.GroupLayout(jPanelTitulo);
        jPanelTitulo.setLayout(jPanelTituloLayout);
        jPanelTituloLayout.setHorizontalGroup(
            jPanelTituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelTituloLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(90, 90, 90)
                .addGroup(jPanelTituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jComboCongresos, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelTitulo)
                    .addGroup(jPanelTituloLayout.createSequentialGroup()
                        .addComponent(jLabel23)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelFechaInicio)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel24)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelFechaFin)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel25)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelCiudad)))
                .addContainerGap(291, Short.MAX_VALUE))
        );
        jPanelTituloLayout.setVerticalGroup(
            jPanelTituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelTituloLayout.createSequentialGroup()
                .addGroup(jPanelTituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel1)
                    .addGroup(jPanelTituloLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jComboCongresos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelTitulo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelTituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel23)
                            .addComponent(jLabelFechaInicio)
                            .addComponent(jLabel24)
                            .addComponent(jLabelFechaFin)
                            .addComponent(jLabel25)
                            .addComponent(jLabelCiudad))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanelFiltro.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "FILTRO", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Verdana", 1, 12), new java.awt.Color(94, 148, 189))); // NOI18N

        jTextNombre.setFont(new java.awt.Font("Verdana", 0, 10));

        jTextDocumento.setFont(new java.awt.Font("Verdana", 0, 10));
        jTextDocumento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextDocumentoActionPerformed(evt);
            }
        });

        jTextNroPedido.setFont(new java.awt.Font("Verdana", 0, 10));

        jButtonFiltrar.setFont(new java.awt.Font("Verdana", 1, 10));
        jButtonFiltrar.setForeground(new java.awt.Color(94, 148, 189));
        jButtonFiltrar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Buscar_normal.gif"))); // NOI18N
        jButtonFiltrar.setToolTipText("Buscar los pedidos que coincidan con el filtro");
        jButtonFiltrar.setBorderPainted(false);
        jButtonFiltrar.setContentAreaFilled(false);
        jButtonFiltrar.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Buscar_deshabilitado.gif"))); // NOI18N
        jButtonFiltrar.setFocusPainted(false);
        jButtonFiltrar.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Buscar_presionado.gif"))); // NOI18N
        jButtonFiltrar.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Buscar_mouse.gif"))); // NOI18N
        jButtonFiltrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFiltrarActionPerformed(evt);
            }
        });

        jCheckNombre.setFont(new java.awt.Font("Verdana", 0, 10));
        jCheckNombre.setText("Nombre");
        jCheckNombre.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckNombreActionPerformed(evt);
            }
        });

        jCheckDocumento.setFont(new java.awt.Font("Verdana", 0, 10));
        jCheckDocumento.setText("Documento");
        jCheckDocumento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckDocumentoActionPerformed(evt);
            }
        });

        jCheckNroPedido.setFont(new java.awt.Font("Verdana", 0, 10));
        jCheckNroPedido.setText("Numero de Pedido");
        jCheckNroPedido.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckNroPedidoActionPerformed(evt);
            }
        });

        jButtonMostrarTodos.setFont(new java.awt.Font("Verdana", 1, 10));
        jButtonMostrarTodos.setForeground(new java.awt.Color(94, 148, 189));
        jButtonMostrarTodos.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/VerTodos_normal.gif"))); // NOI18N
        jButtonMostrarTodos.setToolTipText("Ver todos los pedidos");
        jButtonMostrarTodos.setBorderPainted(false);
        jButtonMostrarTodos.setContentAreaFilled(false);
        jButtonMostrarTodos.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/VerTodos_deshabilitado.gif"))); // NOI18N
        jButtonMostrarTodos.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/VerTodos_presionado.gif"))); // NOI18N
        jButtonMostrarTodos.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/VerTodos_mouse.gif"))); // NOI18N
        jButtonMostrarTodos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonMostrarTodosActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanelFiltroLayout = new javax.swing.GroupLayout(jPanelFiltro);
        jPanelFiltro.setLayout(jPanelFiltroLayout);
        jPanelFiltroLayout.setHorizontalGroup(
            jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelFiltroLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jCheckNombre)
                    .addComponent(jTextNombre, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(53, 53, 53)
                .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jCheckDocumento)
                    .addComponent(jTextDocumento, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(65, 65, 65)
                .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextNroPedido, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckNroPedido))
                .addGap(59, 59, 59)
                .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButtonMostrarTodos, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonFiltrar, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(40, Short.MAX_VALUE))
        );
        jPanelFiltroLayout.setVerticalGroup(
            jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelFiltroLayout.createSequentialGroup()
                .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelFiltroLayout.createSequentialGroup()
                        .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jCheckNombre)
                            .addComponent(jCheckDocumento)
                            .addComponent(jCheckNroPedido))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelFiltroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextDocumento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextNroPedido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanelFiltroLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jButtonFiltrar, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(11, 11, 11)
                        .addComponent(jButtonMostrarTodos, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(19, Short.MAX_VALUE))
        );

        jPanelListados.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "LISTADO DE PEDIDOS", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Verdana", 1, 12), new java.awt.Color(94, 148, 189))); // NOI18N

        jLabel5.setFont(new java.awt.Font("Verdana", 1, 10));
        jLabel5.setText("Pedidos Pendientes");

        jLabel6.setFont(new java.awt.Font("Verdana", 1, 10));
        jLabel6.setText("Pedidos Listos");

        jLabel7.setFont(new java.awt.Font("Verdana", 1, 10));
        jLabel7.setText("Pedidos Entregados");

        jButtonPendListo.setFont(new java.awt.Font("Verdana", 1, 5));
        jButtonPendListo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_normal.gif"))); // NOI18N
        jButtonPendListo.setToolTipText("Pasar el pedido a la lista de pedidos listos");
        jButtonPendListo.setBorderPainted(false);
        jButtonPendListo.setContentAreaFilled(false);
        jButtonPendListo.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_deshabilitado.gif"))); // NOI18N
        jButtonPendListo.setFocusPainted(false);
        jButtonPendListo.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_presionado.gif"))); // NOI18N
        jButtonPendListo.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_mouse.gif"))); // NOI18N
        jButtonPendListo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonPendListoActionPerformed(evt);
            }
        });

        jButtonListoEntr.setFont(new java.awt.Font("Verdana", 1, 5));
        jButtonListoEntr.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_normal.gif"))); // NOI18N
        jButtonListoEntr.setToolTipText("Pasar el pedido a la lista de pedidos entregados");
        jButtonListoEntr.setBorderPainted(false);
        jButtonListoEntr.setContentAreaFilled(false);
        jButtonListoEntr.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Nuevo_deshabilitado.gif"))); // NOI18N
        jButtonListoEntr.setFocusPainted(false);
        jButtonListoEntr.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_presionado.gif"))); // NOI18N
        jButtonListoEntr.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Mover_mouse.gif"))); // NOI18N
        jButtonListoEntr.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonListoEntrActionPerformed(evt);
            }
        });

        jButtonImprimir.setFont(new java.awt.Font("Verdana", 1, 10));
        jButtonImprimir.setForeground(new java.awt.Color(94, 148, 189));
        jButtonImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Imprimir_normal.gif"))); // NOI18N
        jButtonImprimir.setToolTipText("Imprimir la lista de dvs que deben copiarse");
        jButtonImprimir.setBorderPainted(false);
        jButtonImprimir.setContentAreaFilled(false);
        jButtonImprimir.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Imprimir_deshabilitado.gif"))); // NOI18N
        jButtonImprimir.setFocusPainted(false);
        jButtonImprimir.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Imprimir_presionado.gif"))); // NOI18N
        jButtonImprimir.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Imprimir_mouse.gif"))); // NOI18N
        jButtonImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonImprimirActionPerformed(evt);
            }
        });

        jListListos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListListos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jListListosMouseClicked(evt);
            }
        });
        jScrollPane2.setViewportView(jListListos);

        jListPendientes.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListPendientes.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jListPendientesMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jListPendientes);

        jListEntregados.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListEntregados.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jListEntregadosMouseClicked(evt);
            }
        });
        jScrollPane3.setViewportView(jListEntregados);

        javax.swing.GroupLayout jPanelListadosLayout = new javax.swing.GroupLayout(jPanelListados);
        jPanelListados.setLayout(jPanelListadosLayout);
        jPanelListadosLayout.setHorizontalGroup(
            jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelListadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelListadosLayout.createSequentialGroup()
                        .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanelListadosLayout.createSequentialGroup()
                                .addGap(51, 51, 51)
                                .addComponent(jLabel5)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelListadosLayout.createSequentialGroup()
                                .addGap(175, 175, 175)
                                .addComponent(jLabel6)
                                .addGap(85, 85, 85))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelListadosLayout.createSequentialGroup()
                                .addComponent(jButtonPendListo, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(35, 35, 35)
                                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(17, 17, 17)))
                        .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelListadosLayout.createSequentialGroup()
                                .addGap(24, 24, 24)
                                .addComponent(jButtonListoEntr, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(28, 28, 28)
                                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanelListadosLayout.createSequentialGroup()
                                .addGap(143, 143, 143)
                                .addComponent(jLabel7))))
                    .addGroup(jPanelListadosLayout.createSequentialGroup()
                        .addGap(38, 38, 38)
                        .addComponent(jButtonImprimir, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(71, Short.MAX_VALUE))
        );
        jPanelListadosLayout.setVerticalGroup(
            jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelListadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelListadosLayout.createSequentialGroup()
                        .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel6)
                            .addComponent(jLabel5)
                            .addComponent(jLabel7))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelListadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonImprimir, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelListadosLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jButtonPendListo, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(116, 116, 116))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelListadosLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 136, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jButtonListoEntr, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(116, 116, 116)))
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "DETALLES PEDIDO SELECCIONADO", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Verdana", 1, 12), new java.awt.Color(94, 148, 189))); // NOI18N

        jTableDetalles.setFont(new java.awt.Font("Verdana", 0, 10));
        jTableDetalles.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jTableDetalles.setModel(tablaDetalles);
        jScrollPane4.setViewportView(jTableDetalles);

        jButtonVolver.setFont(new java.awt.Font("Verdana", 1, 10)); // NOI18N
        jButtonVolver.setForeground(new java.awt.Color(94, 148, 189));
        jButtonVolver.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Volver_normal.gif"))); // NOI18N
        jButtonVolver.setToolTipText("Volver a la pantalla principal");
        jButtonVolver.setBorderPainted(false);
        jButtonVolver.setContentAreaFilled(false);
        jButtonVolver.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Volver_deshabilitado.gif"))); // NOI18N
        jButtonVolver.setFocusPainted(false);
        jButtonVolver.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Volver_presionado.gif"))); // NOI18N
        jButtonVolver.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Volver_mouse.gif"))); // NOI18N
        jButtonVolver.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonVolverActionPerformed(evt);
            }
        });

        jButtonEliminar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Eliminar_normal.gif"))); // NOI18N
        jButtonEliminar.setBorderPainted(false);
        jButtonEliminar.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Eliminar_deshabilitado.gif"))); // NOI18N
        jButtonEliminar.setPressedIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Eliminar_presionado.gif"))); // NOI18N
        jButtonEliminar.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/Botones/Eliminar_mouse.gif"))); // NOI18N
        jButtonEliminar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonEliminarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 788, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGap(345, 345, 345)
                        .addComponent(jButtonEliminar, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 329, Short.MAX_VALUE)
                        .addComponent(jButtonVolver, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(17, 17, 17)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButtonEliminar, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonVolver, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(349, 349, 349))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanelFiltro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanelTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jPanelListados, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap(405, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanelTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelFiltro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanelListados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(228, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents


/** Acciones cuando se selecciona un Congreso del combo" */
private void jComboCongresosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboCongresosActionPerformed
  //Se guarda el congreso seleccionado en el controller
    mCongreso = new Congreso();
    mCongreso = (Congreso)jComboCongresos.getSelectedItem();
    mSegPedidoController.setCongreso(mCongreso);
    String diaI = "";  
    String mesI = "";
    String anioI = "";
    String fechaI = "";
    
    String diaF = "";  
    String mesF = "";
    String anioF = "";
    String fechaF = "";
    jLabelFechaInicio.setText("");
    jLabelFechaFin.setText("");  
    // Se muestra el nombre del congreso seleccionado en la pantalla
    if (mCongreso.getNombreCong().compareTo("TODOS")==0){    
    }else{
        diaI = mCongreso.getFechaInicio().substring(8, 10);  
        mesI = mCongreso.getFechaInicio().substring(5, 7);
        anioI = mCongreso.getFechaInicio().substring(0, 4);
        fechaI = diaI+"/"+mesI+"/"+anioI;

        diaF = mCongreso.getFechaFin().substring(8, 10);  
        mesF = mCongreso.getFechaFin().substring(5, 7);
        anioF = mCongreso.getFechaFin().substring(0, 4);
        fechaF = diaF+"/"+mesF+"/"+anioF;
        jLabelFechaInicio.setText(fechaI);
        jLabelFechaFin.setText(fechaF);
    }
    jLabelTitulo.setText(mCongreso.getNombreCong());
    
    jLabelCiudad.setText(mCongreso.getLocalidad());
    
    
     // Se habilitan los paneles 
     estadoBotonesFiltro();
     panelListadosEstado(true);
     panelDetallesEstado(true);
     
     // Se crean los pedidos del congreso
     mSegPedidoController.cargarPedidos(this.ventana);
     
     // Se cargan las 3 listas con los pedidos del congreso seleccionado
     cargarListas();
     if (vPend.size() <= 0){
         jButtonImprimir.setEnabled(false);
     }   
     
     if (mSegPedidoController.getCongreso().getIniciales().compareTo("TODOS")==0 && mSegPedidoController.getCongreso().getFechaInicio().compareTo("00-00-0000 00:00:00")==0)
     jButtonImprimir.setEnabled(false);
}//GEN-LAST:event_jComboCongresosActionPerformed


/** Carga las 3 listas de pedidos */
private void cargarListas(){
  //Se vacian las listas por si habia pedidos de otro congreso
      vPend.removeAllElements();
      vList.removeAllElements();
      vEntr.removeAllElements();
      
      
  // Se cargan las listas con los pedidos
      for (int i=0 ; i < mSegPedidoController.getPedidos().size() ; i++)
            if (mSegPedidoController.getPedidos().get(i).getEstadoo().compareTo("Pendiente") == 0)
                vPend.addElement(mSegPedidoController.getPedidos().get(i));
     for (int i=0 ; i < mSegPedidoController.getPedidos().size() ; i++)
            if (mSegPedidoController.getPedidos().get(i).getEstadoo().compareTo("Listo")== 0)
                vList.addElement(mSegPedidoController.getPedidos().get(i));
      for (int i=0 ; i < mSegPedidoController.getPedidos().size() ; i++)
            if (mSegPedidoController.getPedidos().get(i).getEstadoo().compareTo("Entregado")== 0)
                vEntr.addElement(mSegPedidoController.getPedidos().get(i)); 
      
     jListPendientes.setListData(vPend); 
     jListListos.setListData(vList);
     jListEntregados.setListData(vEntr); 
}




/** Acciones cuando se pasa un pedido de "Pendiente" a "Listo" */
private void jButtonPendListoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonPendListoActionPerformed
 if(jListPendientes.isSelectionEmpty() == false){ 
    for (int i=0 ; i<mSegPedidoController.getPedidos().size() ; i++){
        
        if(mSegPedidoController.getPedidos().get(i).getCliente().getIdCli() == ((Pedido)jListPendientes.getSelectedValue()).getCliente().getIdCli() 
                && mSegPedidoController.getPedidos().get(i).getFecha().compareTo(((Pedido)jListPendientes.getSelectedValue()).getFecha()) == 0 ){
                        mSegPedidoController.getPedidos().get(i).setEstadoo("Listo");
                        mSegPedidoController.setPedido(mSegPedidoController.getPedidos().get(i));
                        mSegPedidoController.cambioEstadoPedido();
        }
    }
    vList.addElement(jListPendientes.getSelectedValue());
    jListListos.setListData(vList);
    vPend.remove(jListPendientes.getSelectedValue());
    jListPendientes.setListData(vPend);          
    
    //Almacena los cambios!!
        if (vPend.size() <= 0){
         jButtonImprimir.setEnabled(false);
     }   
 }
}//GEN-LAST:event_jButtonPendListoActionPerformed


 /** Acciones cuando se pasa un pedido de "Listo" a "Entregado" */
private void jButtonListoEntrActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonListoEntrActionPerformed
   
    if(jListListos.isSelectionEmpty() == false){ 
        int idCli2 = ((Pedido)jListListos.getSelectedValue()).getCliente().getIdCli();
        String fecha2 = ((Pedido)jListListos.getSelectedValue()).getFecha();
           for (int i=0 ; i<mSegPedidoController.getPedidos().size() ; i++){

               try{
                int idCli1 = mSegPedidoController.getPedidos().get(i).getCliente().getIdCli();
                   
                String fecha1 = mSegPedidoController.getPedidos().get(i).getFecha();
                
                if(idCli1 == idCli2 && fecha1.compareTo(fecha2)==0){
                        this.mPedido = mSegPedidoController.getPedidos().get(i);
                         crearPantallaRecibo(mSegPedidoController.getPedidos().get(i));
                         
                }
              }catch (Exception e){
                  e.printStackTrace();
                   
                   
               }
           }
    }
}//GEN-LAST:event_jButtonListoEntrActionPerformed




public void aceptaEntrega(){
if(jListListos.isSelectionEmpty() == false){ 
   for (int i=0 ; i<mSegPedidoController.getPedidos().size() ; i++){
    if(mSegPedidoController.getPedidos().get(i) == this.mPedido){
         mSegPedidoController.setPedido(mPedido);    
          mSegPedidoController.getPedidos().get(i).setCongreso(mCongreso);
            mSegPedidoController.getPedidos().get(i).setEstadoo("Entregado");
           
            mSegPedidoController.cambioEstadoPedido();
    }
   }       

    vEntr.addElement(jListListos.getSelectedValue());
    jListEntregados.setListData(vEntr);
    vList.remove(jListListos.getSelectedValue());
    jListListos.setListData(vList);     

}
}


private void crearPantallaRecibo(Pedido p){
        ReciboForm gForm = new ReciboForm(this, true, p);
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension screenSize = tk.getScreenSize();
        int screenHeight = screenSize.height;
        int screenWidth = screenSize.width;
        gForm.setLocation(screenWidth / 4, screenHeight / 4);
        gForm.setVisible(true);

}

/** Acciones cuando se presiona el boton "Volver" */
private void jButtonVolverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonVolverActionPerformed
     try{mSegPedidoController.getCongresos().remove(mSegPedidoController.getCongresos().size()-2);
     }catch(Exception e){}
    ppal.cargarFormulario();
     this.dispose();
     
}//GEN-LAST:event_jButtonVolverActionPerformed


/** Acciones cuando se presiona el boton "Imprimir" */
private void jButtonImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonImprimirActionPerformed
    // Pide que se imprima el pedido pendiente seleccionado
    if(vPend.size() >0){
        ArrayList<String> DVD = new ArrayList<String>();
        ArrayList<String> Cantidad = new ArrayList<String>();
        ArrayList<Integer> cantidadInt = new ArrayList<Integer>();
        ArrayList<Pedido> auxPed = new ArrayList<Pedido>();
        
        for(int i=0;i<vPend.size();i++)
            auxPed.add((Pedido)vPend.get(i));
        int semaforo=0;
        //carga los DVD
        for(int i=0;i<auxPed.size();i++){
            for (int j=0;j<auxPed.get(i).getDVDs().size();j++){
                for(int k=0;k<DVD.size();k++)
                    if (DVD.get(k).compareTo(auxPed.get(i).getDVDs().get(j).toString())==0)
                        semaforo=1;
                if (semaforo==0) 
                    DVD.add(auxPed.get(i).getDVDs().get(j).toString());
            }
        }
        //los ordena
        DVD=ordenar(DVD);
        for (int i=0;i<DVD.size();i++)
            cantidadInt.add(0);
        
        for(int i=0;i<auxPed.size();i++){
            for (int j=0;j<auxPed.get(i).getDVDs().size();j++){
                for(int k=0;k<DVD.size();k++)
                    if (DVD.get(k).compareTo(auxPed.get(i).getDVDs().get(j).toString())==0)
                        cantidadInt.set(k,cantidadInt.get(k)+1);
            }
        }
        for (int i=0;i<cantidadInt.size();i++)
            Cantidad.add(cantidadInt.get(i).toString());
                    
        
        //Servicio.Proxy.obtenerTren(DVD, Cantidad, mCongreso);
        mSegPedidoController.imprimirTren(DVD, Cantidad);
    }
    
}//GEN-LAST:event_jButtonImprimirActionPerformed

private ArrayList<String> ordenar(ArrayList<String> str){
    ArrayList<String> aux= new ArrayList<String>();
    for (int i=0;i<str.size();i++){
        int j=0;
        while(j<aux.size()){
            if (Integer.valueOf(aux.get(j)) > Integer.valueOf(str.get(i)))
                break;
            j++;
        }
        aux.add(j, str.get(i));            
    }
    return aux;
}

/** Acciones cuando se se marca el checkBox "Nombre" del panel de filtros */
private void jCheckNombreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckNombreActionPerformed
if (jCheckNombre.isSelected()){
  //Se deshabilitan los checkBox de documento y nro de pedido
    jCheckDocumento.setSelected(false);
    jCheckNroPedido.setSelected(false);
  //Se deshabilitan los textBox de documento y nro de pedido y se habilita el de Nombre  
    jTextNombre.setEnabled(true);
    jTextDocumento.setEnabled(false);
    jTextDocumento.setText("");
    jTextNroPedido.setEnabled(false);
    jTextNroPedido.setText("");
  //Se habilita el boton de filtrar
    jButtonFiltrar.setEnabled(true);
  
}else{
    jTextNombre.setEnabled(false);
    jTextNombre.setText("");
    if (jCheckDocumento.isSelected()==false && jCheckNroPedido.isSelected() == false)
        jButtonFiltrar.setEnabled(false);
}
}//GEN-LAST:event_jCheckNombreActionPerformed


/** Acciones cuando se se marca el checkBox "Documento" del panel de filtros */
private void jCheckDocumentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckDocumentoActionPerformed
 if (jCheckDocumento.isSelected()){
    jCheckNombre.setSelected(false);
    jCheckNroPedido.setSelected(false);
    jTextNombre.setEnabled(false);
    jTextDocumento.setEnabled(true);
    jTextNroPedido.setEnabled(false);
    jButtonFiltrar.setEnabled(true);
    jTextNroPedido.setText("");
     jTextNombre.setText("");
 }else{
     jTextDocumento.setEnabled(false);
     jTextDocumento.setText("");
  if (jCheckNombre.isSelected()==false && jCheckNroPedido.isSelected() == false)
        jButtonFiltrar.setEnabled(false);  
 }
}//GEN-LAST:event_jCheckDocumentoActionPerformed


/** Acciones cuando se se marca el checkBox "Numero de Pedido" del panel de filtros */
private void jCheckNroPedidoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckNroPedidoActionPerformed
  if (jCheckNroPedido.isSelected()){
    jCheckDocumento.setSelected(false);
    jCheckNombre.setSelected(false);
    jTextNombre.setEnabled(false);
    jTextDocumento.setEnabled(false);
    jTextNroPedido.setEnabled(true);
    jButtonFiltrar.setEnabled(true);
    jTextNombre.setText("");
    jTextDocumento.setText("");
  }else{
       jTextNroPedido.setEnabled(false);
       jTextNroPedido.setText("");
        if (jCheckDocumento.isSelected()==false && jCheckNombre.isSelected() == false)//GEN-LAST:event_jCheckNroPedidoActionPerformed
            jButtonFiltrar.setEnabled(false);
  }
}


/** Si se marca un pedido de la "LISTA DE PENDIENTES" se muestran los detalles del mismo */

/** Si se marca un pedido de la "LISTA DE LISTOS" se muestran los detalles del mismo */

/** Si se marca un pedido de la "LISTA DE ENTREGADOS" se muestran los detalles del mismo */

/** Acciones si se presiona el boton "Mostrar Todos" */
private void jButtonMostrarTodosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonMostrarTodosActionPerformed
   // Se cargan las 3 listas con los pedidos del congreso seleccionado
     cargarListas();
    
    panelFiltroEstado(false);
    jCheckNombre.setEnabled(true);
    jCheckDocumento.setEnabled(true);
    jCheckNroPedido.setEnabled(true);
    jTextNroPedido.setText("");
    jTextNombre.setText("");
    jTextDocumento.setText("");
    jCheckNombre.setSelected(false);
    jCheckDocumento.setSelected(false);
    jCheckNroPedido.setSelected(false);

     
}//GEN-LAST:event_jButtonMostrarTodosActionPerformed

/** Acciones si se presiona el boton "Filtrar" */
private void jButtonFiltrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFiltrarActionPerformed
    // Buscar por NOMBRE
    if (jCheckNombre.isSelected()){
       filtrarNombre(jTextNombre.getText());
       jCheckNombre.setEnabled(false);
       jCheckDocumento.setEnabled(false);
       jCheckNroPedido.setEnabled(false);
       jTextNombre.setEnabled(false);
       jButtonFiltrar.setEnabled(false);
       jButtonMostrarTodos.setEnabled(true);
    }
    
    // Buscar por DOCUMENTO
    if (jCheckDocumento.isSelected()){
      double doc;
      
         try {
            doc = Double.parseDouble(jTextDocumento.getText());
            filtrarDocumento(jTextDocumento.getText());
            jCheckNombre.setEnabled(false);
            jCheckDocumento.setEnabled(false);
            jCheckNroPedido.setEnabled(false);
            jTextDocumento.setEnabled(false);
            jButtonFiltrar.setEnabled(false);
            jButtonMostrarTodos.setEnabled(true);
        } catch (Exception e) { 
            e.printStackTrace();
            JOptionPane.showMessageDialog(new JFrame(), "El documento debe ser un número", "Atención", JOptionPane.WARNING_MESSAGE);
      }
      
      
    }
    
    // Buscar por NUMERO DE PEDIDO
    if (jCheckNroPedido.isSelected()){
      int nroP;
         try {
            nroP = Integer.parseInt(jTextNroPedido.getText());
            filtrarNroPedido(nroP);
            jCheckNombre.setEnabled(false);
            jCheckDocumento.setEnabled(false);
            jCheckNroPedido.setEnabled(false);
            jTextNroPedido.setEnabled(false);
            jButtonFiltrar.setEnabled(false);
            jButtonMostrarTodos.setEnabled(true);
        } catch (Exception e) { 
            JOptionPane.showMessageDialog(new JFrame(), "El numero de pedido debe ser un numero", "Atención", JOptionPane.WARNING_MESSAGE);
      }
     
    }
}//GEN-LAST:event_jButtonFiltrarActionPerformed

private void jTextDocumentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextDocumentoActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jTextDocumentoActionPerformed

private void jListPendientesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jListPendientesMouseClicked
     jListListos.clearSelection();
     jListEntregados.clearSelection();
     mostrarDetalle(jListPendientes,this.ventana, "Pendientes");
}//GEN-LAST:event_jListPendientesMouseClicked

private void jListListosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jListListosMouseClicked
     jListPendientes.clearSelection();
     jListEntregados.clearSelection();
     mostrarDetalle(jListListos,this.ventana, "Listos");
}//GEN-LAST:event_jListListosMouseClicked

private void jListEntregadosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jListEntregadosMouseClicked
     jListListos.clearSelection();
     jListPendientes.clearSelection();
     mostrarDetalle(jListEntregados,this.ventana, "Entregados");
}//GEN-LAST:event_jListEntregadosMouseClicked

private void jButtonEliminarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonEliminarActionPerformed
    Object[] opciones ={"Si","No"}; 
    int selec;
    if (mSegPedidoController.getPedidoElim()!=null){
        selec = JOptionPane.showOptionDialog(new JFrame(), "¿Está seguro que desea eliminar el pedido?","Atención!",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null, opciones, null);
             if(selec == 0){
                Contrasena contrasena= new Contrasena(mSegPedidoController,this); 
                Toolkit tk = Toolkit.getDefaultToolkit();
                Dimension screenSize = tk.getScreenSize();
                int screenHeight = screenSize.height;
                int screenWidth = screenSize.width;
                contrasena.setLocation(screenWidth / 4, screenHeight / 4);
                contrasena.setVisible(true);

             }
    }
    
}//GEN-LAST:event_jButtonEliminarActionPerformed

/** Muestra los detalles de un Pedido seleccionado en alguna lista */
private void mostrarDetalle(JList lista, boolean vent, String nombreLista){
  // Vent
  // 0=envios
  // 1=pedidos
    
    
    if(lista.isSelectionEmpty()==false){
        mSegPedidoController.setPedidoElim((Pedido)lista.getSelectedValue()); //guarda el pedido por si se quiere eliminarlo
        while (tablaDetalles.getRowCount()!=0)
            tablaDetalles.removeRow(0);
        String[] fila1={"","","","","","","",""};    
        String[] fila2={"","","","","","","","","",""};
        // Arma String con los dvds del pedido
        String dvds = "";
        for (int i=0 ; i <((Pedido)lista.getSelectedValue()).getDVDs().size() ; i++){
            if (dvds.compareTo("") == 0)
                dvds = String.valueOf(((Integer)(((Pedido)lista.getSelectedValue()).getDVDs().get (i))));
            else
                dvds = dvds + ", "+ String.valueOf(((Integer)(((Pedido)lista.getSelectedValue()).getDVDs().get (i))));
         } 
               
        float senia = ((Pedido)lista.getSelectedValue()).getSenia();
        float total = ((Pedido)lista.getSelectedValue()).getTotal();
        float deuda;
        if (nombreLista.compareTo("Entregados") == 0)
            deuda = 0;
        else
            deuda = total - senia;
         
        // Carga las columnas en la tabla con los datos del pedido seleccionado
          if (vent){
            fila1[0] = String.valueOf(((Pedido)lista.getSelectedValue()).getNroPedido());
            fila1[1] = String.valueOf(((Pedido)lista.getSelectedValue()).getCliente().getApellidoCli() + ", " +((Pedido)lista.getSelectedValue()).getCliente().getNombreCli());
            fila1[2] = dvds;
            fila1[3] = "$ " + String.valueOf(senia);
            fila1[4] = "$ " + String.valueOf(total);
            fila1[5] = "$ " + String.valueOf(deuda);
            fila1[6] = ((Pedido)lista.getSelectedValue()).getCongreso().getIniciales();
            fila1[7] = ((Pedido)lista.getSelectedValue()).getSimbM();
            tablaDetalles.addRow(fila1);
          }else{
            String dia = ((Pedido)lista.getSelectedValue()).getFechaEnvio().substring(8, 10);  
            String mes = ((Pedido)lista.getSelectedValue()).getFechaEnvio().substring(5, 7);
            String anio = ((Pedido)lista.getSelectedValue()).getFechaEnvio().substring(0, 4);
            String fecha = dia+"/"+mes+"/"+anio;
            
            
            fila2[0] = String.valueOf(((Pedido)lista.getSelectedValue()).getNroPedido());
            fila2[1] = String.valueOf(((Pedido)lista.getSelectedValue()).getCliente().getApellidoCli() + ", " +((Pedido)lista.getSelectedValue()).getCliente().getNombreCli());
            fila2[2] = dvds;
            fila2[3] = "$ " + String.valueOf(senia);
            fila2[4] = "$ " + String.valueOf(total);
            fila2[5] = "$ " + String.valueOf(deuda);
            fila2[6] = fecha;
            fila2[7] = ((Pedido)lista.getSelectedValue()).getCongreso().getIniciales();
            fila2[8] = ((Pedido)lista.getSelectedValue()).getSimbM();
            tablaDetalles.addRow(fila2);
          }
          
      }
  }

/** Muestra los pedidos que tengan el nombre o apellido establecido en el filtro */
private void filtrarNombre(String nom){
    Vector vAux = new Vector();
    vAux.addElement(null);
    
    jListPendientes.setListData(vAux);
    jListListos.setListData(vAux);
    jListEntregados.setListData(vAux); 
    //Normaliza los strings
    nom=nom.toLowerCase();
    String auxNom;
    String auxApellido;
    
    //Saca del vector de la Lista de pendientes los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vPend.size() ; i++){
        auxNom=((Pedido)vPend.get(i)).getCliente().getNombreCli().toLowerCase();
        auxApellido=((Pedido)vPend.get(i)).getCliente().getApellidoCli().toLowerCase();
        if (auxNom.indexOf(nom)< 0 && auxApellido.indexOf(nom)< 0 ){
            vPend.removeElementAt(i);
                i=i-1;
        }
    }
    
    //Saca del vector de la Lista de listos los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vList.size() ; i++){
        auxNom=((Pedido)vList.get(i)).getCliente().getNombreCli().toLowerCase();
        auxApellido=((Pedido)vList.get(i)).getCliente().getApellidoCli().toLowerCase();
        if (auxNom.indexOf(nom)<  0 && auxApellido.indexOf(nom)< 0){
            vList.removeElementAt(i);

                i=i-1;
        }
    }
    
    //Saca del vector de la Lista de entregados los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vEntr.size() ; i++){
        auxNom=((Pedido)vEntr.get(i)).getCliente().getNombreCli().toLowerCase();
        auxApellido=((Pedido)vEntr.get(i)).getCliente().getApellidoCli().toLowerCase();
        if (auxNom.indexOf(nom)<  0 && auxApellido.indexOf(nom)< 0){
            vEntr.removeElementAt(i);

                i=i-1;
        }
    }
    
     // Carga las listas con los pedidos que quedaron en cada vector   
     jListPendientes.setListData(vPend); 
     jListListos.setListData(vList);
     jListEntregados.setListData(vEntr); 
     
     

}

/** Muestra los pedidos que tengan el documento establecido en el filtro */
private void filtrarDocumento(String doc){
    Vector vAux = new Vector();
    vAux.addElement(null);
   
    jListPendientes.setListData(vAux);
    jListListos.setListData(vAux);
    jListEntregados.setListData(vAux); 
    
    //Saca del vector de la Lista de pendientes los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vPend.size() ; i++){
        try{
            if (((Pedido)vPend.get(i)).getCliente().getNroDocumento().compareTo(doc)!=0){
                vPend.removeElementAt(i);
                i=i-1;
            }
            } catch (Exception e) { 
                vPend.removeElementAt(i);
                i=i-1;
        }
    }
    
    //Saca del vector de la Lista de listos los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vList.size() ; i++){
        try{
        if (((Pedido)vList.get(i)).getCliente().getNroDocumento().compareTo(doc)!=0){
            vList.removeElementAt(i);
                i=i-1;
        }
        } catch (Exception e) { 
            vList.removeElementAt(i); 
                i=i-1;}
            
        
    }
    //Saca del vector de la Lista de entregados los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vEntr.size() ; i++){
        try{
        if (((Pedido)vEntr.get(i)).getCliente().getNroDocumento().compareTo(doc)!= 0){
            vEntr.removeElementAt(i);
                i=i-1;}
        } catch (Exception e) { 
            vEntr.removeElementAt(i);
                i=i-1;
        }
    }
     // Carga las listas con los pedidos que quedaron en cada vector   
      jListPendientes.setListData(vPend); 
      jListListos.setListData(vList);
      jListEntregados.setListData(vEntr); 

}

/** Muestra los pedidos que tengan el numero de pedido establecido en el filtro */
private void filtrarNroPedido(int nroP){
    Vector vAux = new Vector();
    vAux.addElement(null);
   
    jListPendientes.setListData(vAux);
    jListListos.setListData(vAux);
    jListEntregados.setListData(vAux); 
    
    //Saca del vector de la Lista de pendientes los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vPend.size() ; i++)
        if (((Pedido)vPend.get(i)).getNroPedido() != nroP){
            vPend.removeElementAt(i);

                i=i-1;
        }
    
    //Saca del vector de la Lista de listos los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vList.size() ; i++)
        if (((Pedido)vList.get(i)).getNroPedido() != nroP){
            vList.removeElementAt(i);

                i=i-1;
        }
    
    //Saca del vector de la Lista de entregados los pedidos que no coinciden con el filtro
    for (int i=0 ; i<vEntr.size() ; i++)
        if (((Pedido)vEntr.get(i)).getNroPedido() != nroP){
            vEntr.removeElementAt(i);

                i=i-1;
        }
    
     // Carga las listas con los pedidos que quedaron en cada vector   
     jListPendientes.setListData(vPend); 
     jListListos.setListData(vList);
     jListEntregados.setListData(vEntr); 

}

    public Congreso getCongreso(){
        return mCongreso;
    }
    
    public void setCongreso(Congreso val){
        this.mCongreso = val;
    } 

public String getModo() {
        return modo;
    }
    
public void setModo (String val) {
        this.modo = val;
    }

public void setPpal(PpalForm p){
        this.ppal=p;
}

public void actualizar(){
    this.jComboCongresosActionPerformed(null);
}

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonEliminar;
    private javax.swing.JButton jButtonFiltrar;
    private javax.swing.JButton jButtonImprimir;
    private javax.swing.JButton jButtonListoEntr;
    private javax.swing.JButton jButtonMostrarTodos;
    private javax.swing.JButton jButtonPendListo;
    private javax.swing.JButton jButtonVolver;
    private javax.swing.JCheckBox jCheckDocumento;
    private javax.swing.JCheckBox jCheckNombre;
    private javax.swing.JCheckBox jCheckNroPedido;
    private javax.swing.JComboBox jComboCongresos;
    private javax.swing.JDialog jDialog1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabelCiudad;
    private javax.swing.JLabel jLabelFechaFin;
    private javax.swing.JLabel jLabelFechaInicio;
    private javax.swing.JLabel jLabelTitulo;
    private javax.swing.JList jListEntregados;
    private javax.swing.JList jListListos;
    private javax.swing.JList jListPendientes;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanelFiltro;
    private javax.swing.JPanel jPanelListados;
    private javax.swing.JPanel jPanelTitulo;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JTable jTableDetalles;
    private javax.swing.JTextField jTextDocumento;
    private javax.swing.JTextField jTextNombre;
    private javax.swing.JTextField jTextNroPedido;
    // End of variables declaration//GEN-END:variables

}
